import type {showDetail} from "./interface"
import {PropType} from "vue"
export const propsOpts = {
	//这里是动态返回时间戳。这是一个标准的时间，不管showDetail是如何设置都将不影响这里的输出。
	modelValue:{
		type:[Number,String,Date],
		default:''
	},
	//这里和modelValue不一样，它只代表格式化输出显示，因此这里可能并不是一个有效的时间值。
	/**
	 * 比如:format为"MM/DD",那这里就会显示12/10这样的时间格式，因此并不是一个正确的时间，
	 * 这里主要是为了方便表单上页面的显示控制输入。如果真要保存到数据库，你应该保存modelValue的值。
	 */
	modelStr:{
		type:[String],
		default:''
	},
	defaultValue:{
		type:[Number,String,Date],
		default:''
	},
	//禁用的部分日期，禁用的日期将不会被选中，就算滑到了该位置，也会回弹到之前的时间。
	/**
	 * 现在暂时只禁用到天，也就是一个时间到天这如果==下面的禁用日期，就会选不中。
	 */
	disabledDate:{
		type:Array as PropType<Array<Number|String|Date>>,
		default:():Array<Number|String|Date>=>[]
	},
	//展示格式。最终影响到modelStr输出格式的内容。
	format:{
		type:String,
		default:"YYYY/MM/DD HH:mm:ss"
	},
	immediateChange:{
		type:Boolean,
		default:false
	},
	//需要展现的时间格式类型
	showDetail:{
		type:Object as PropType<showDetail>,
		default:()=>{
			return {
				year:true,
				month:true,
				day:true,
				hour:false,
				minute:false,
				second:false
			}
		}
	},
	//日期的后缀，
	showSuffix:{
		type:Object,
		default:()=>{
			return {
				year:'年',
				month:'月',
				day:'日',
				hour:'时',
				minute:'分',
				second:'秒'
			}
		}
	},
	start:{
		type:[Number,String,Date],
		default:'2008/01/01 00:00:00'
	},
	end:{
		type:[Number,String,Date],
		default:''
	},
	height:{
		type:Number,
		default:300
	}
}